/*
This file is part of Docking@Home.
http://docking.gcl.cis.udel.edu
Copyright (C) 2009 University of Delaware

Docking@Home is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

Docking@Home is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with Docking@Home.  If not, see <http://www.gnu.org/licenses/>.
*/
/*
	Filename: HighLevelTab.h
	Description: A tab in our gui that will control and display any 
		of the high details of the protein and ligand simulation.
	Revision History: 
		Created - 01/14/08
	Author: Robert Keller (01/14/08 -> Current)
*/

#ifndef _HighLevelTab_h
#define _HighLevelTab_h

#include "Tab.h"

class HighLevelTab : public Tab
{
public:

	// Constructor / Destructor

	HighLevelTab();
	HighLevelTab(const char n[25]);
	~HighLevelTab();

	// Initialization Functions

	void init (const char n[25]);

	// Required Tab Functions 

	void resizeScales (bool bFullscreen = false);

	void draw (unsigned int index, bool bFullScreen);
	void drawSelectedTab (unsigned int index);
	void drawUnselectedTab (unsigned int index);
	void drawHoveredTab (unsigned int index);
	void drawTabWindowArea ();
	void drawFullScreen ();

	void handleMouseMove (int x, int y, int left, 
		int middle, int right);
	void handleMouseButton (int x, int y, int which, 
		int is_down);
	void handleKeyPress (int key1, int key2);	
	void handleKeyRelease (int key1, int key2);

private:
	vector<string> instructions;
	char *tempLine;
	float infoScale;
};

#endif

